package com.example.spidertp.core.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.concurrent.BlockingQueue;
import java.util.concurrent.TimeUnit;

/**
 * @author xiong.bo
 * @version 1.0
 * @date 2022/9/18 11:42 上午
 */

@ApiModel("线程池活动状态数据展示类")
@Data
public class SpiderThreadPoolLivingStateVo {

    @ApiModelProperty("线程池名称")
    private String poolName;

    /**
     * 核心线程数
     */
    @ApiModelProperty("核心线程数")
    private int corePoolSize;

    /**
     * 最大线程数
     */
    @ApiModelProperty("最大线程数")
    private int maximumPoolSize;

    /**
     * 空闲线程存活时间
     */
    @ApiModelProperty("空闲线程存活时间")
    private Long keepAliveTime;

    /**
     * 空闲线程存活时间单位
     */
    @ApiModelProperty("空闲线程存活时间单位")
    private TimeUnit unit;

    /**
     * 工作队列
     */
    @ApiModelProperty("当前工作队列数量")
    private int workQueueSize;

    @ApiModelProperty("工作队列最大容量")
    private int queueCapacity;


    /**
     * 返回线程池中的当前线程数
     */
    @ApiModelProperty("返回线程池中的当前线程数")
    private int poolSize;

    /**
     * 正在积极执行任务的线程的大致数量
     * 动态变化的近似值
     */
    @ApiModelProperty("正在积极执行任务的线程的大致数量")
    private int activeCount;

    /**
     * 返回已计划执行的任务的大致总数
     * 动态变化的近似值
     */
    @ApiModelProperty("返回已计划执行的任务的大致总数")
    private long taskCount;

    /**
     * 返回已完成执行的任务的大致总数
     * 动态变化的近似值
     */
    @ApiModelProperty("返回已完成执行的任务的大致总数")
    private long completedTaskCount;

    /**
     * 返回池中曾经同时存在的最大线程数
     */
    @ApiModelProperty("返回池中曾经同时存在的最大线程数")
    private int largestPoolSize;
}
